/**
 * Created by superman on 17/2/16.
 * http配置
 */
import Vue from 'vue';
import axios from 'axios';


// axios 配置
axios.defaults.timeout = 10000;
axios.defaults.baseURL = process.env.NODE_ENV === 'production' ? 'https://zhimajob.com' : 'https://www.easy-mock.com/mock/5bf98289cc4bfa61f5fcd068/sesam';

// http request 拦截器

axios.defaults.adapter = function(request) {
    //发请求之前显示加载中
    wx.showLoading({ title: '拼命加载中...' })
    //发请求调用
    return new Promise((resolve, reject) => {
        wx.request({
        ...request,
        url: request.url,
        data: request.method === 'get' ? request.params : request.data,
        success: res => {
            wx.hideLoading()
            return resolve(res)
        },
        fail:(err)=>{
            wx.hideLoading()
            return reject(err)
        }
      });
    })
}
// axios.interceptors.request.use((request) => {
//     console.log('ssss')
//     wx.showLoading({ title: '拼命加载中...' })
//     return request
// });

// http response 拦截器
axios.interceptors.response.use(
    (response) => {
        wx.hideLoading()
        if(response.data.code < 2000 || response.data.code > 4000) {
            wx.showModal({
                title: '错误',
                showCancel: false,
                content: response.data.message
            });
            return;
        }
        return response.data
    },
    (err) => {
        wx.hideLoading()
        wx.showModal({
            title: '错误',
            showCancel: false,
            content: err.message || '返回错误'
        });
        return;
    }
)
// axios.interceptors.response.use(
//     response => response.data,
//     // (error) => {
//     //     // if (error.response) {
//     //     //     switch (error.response.status) {
//     //     //     case 401:
//     //     //         // 401 清除token信息并跳转到登录页面
//     //     //         store.commit(types.LOGOUT);

//     //     //         // 只有在当前路由不是登录页面才跳转
//     //     //         router.currentRoute.path !== 'login' &&
//     //     //     router.replace({
//     //     //         path: 'login',
//     //     //         query: { redirect: router.currentRoute.path },
//     //     //     });
//     //     //     }
//     //     // }
//     //     // console.log(JSON.stringify(error));
//     // console : Error: Request failed with status code 402
//     //     Promise.reject(error.response.data);
//     // },
// );

Vue.prototype.$http = axios;

export default axios;
